#pragma once
#include <vector>

#include "bglLayer.h"

class BGLLayerStack
{
    public:
    BGLLayerStack();
    ~BGLLayerStack();

    void PushLayer(BGLLayer* layer);
    void PushOverlay(BGLLayer* overlay);
    void PopLayer(BGLLayer* layer);
    void PopOverlay(BGLLayer* overlay);

    std::vector<BGLLayer*>::iterator begin() { return m_layers.begin(); }
    std::vector<BGLLayer*>::iterator end() { return m_layers.end(); }
private:
    std::vector<BGLLayer*> m_layers;
    uint32_t m_layerInsertIndex = 0;
};